/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package cl.edinet.agencialinea3.web.application.movimientos.aduanero;

import cl.aperture.commons.DefaultValidador;
import cl.aperture.commons.ValidationException;
import cl.aperture.commons.xml.XMLControlResponse;
import cl.edinet.agencialinea3.ejb.bean.parametro.ParametroDeclaracion;
import cl.edinet.agencialinea3.ejb.bean.parametro.ParametroDocumento;
import cl.edinet.agencialinea3.ejb.entity.Declaracion;
import cl.edinet.agencialinea3.ejb.entity.Documento;
import cl.edinet.agencialinea3.ejb.entity.Importador;
import cl.edinet.agencialinea3.web.controller.MainController;
import cl.edinet.leela2.web.controller.annotations.LeelaFrontController;
import java.math.BigDecimal;
import java.util.List;

/**
 *
 * @author Iván Zúñiga & Tomás Quinteros
 */
@LeelaFrontController(urlPatterns = "/application/movimientos/aduanero/Dus.view", pathDispatcher = "/application/movimientos/aduanero/dus.jsp")

public class Dus extends MainController {
        
    private Importador importador;
    private List<Importador> importadores;
    private Integer pagina;
    private final int cantidadRegistrosPorPagina = 9;

    @Override
    public void doValidate(DefaultValidador dv) throws ValidationException, Exception {
        
        BigDecimal idImportador = getValidadorHandler().validarBigDecimal("importador");
        
        if (idImportador != null) {
        importador = getRemote().getImportador(idImportador);
        }
        
        pagina = getValidadorHandler().validarInteger("pagina");
        if (pagina == null) {
            pagina = 0;
        }
        
    }

    @Override
    public void doBusiness() throws ValidationException, Exception {
        
        ParametroDocumento parametros = new ParametroDocumento();
        //ParametroDeclaracion parametros = new ParametroDeclaracion();
        parametros.setConsignatario(importador);
        //parametros.setImportador(importador);
        parametros.setCantidadRegistrosPorPagina(cantidadRegistrosPorPagina);
        parametros.setRegistrosDesde(cantidadRegistrosPorPagina * pagina.intValue());
        
        importadores = getRemote().getImportadores();
        
        XMLControlResponse controlResponse = new XMLControlResponse();
        
        if(importador!=null){
            controlResponse.add("importador", importador.getCodigo().toString());
        }
        
        //int cantidadTotalRegistrosBusqueda = getRemote().contarDeclaraciones(parametros);
        int cantidadTotalRegistrosBusqueda = getRemote().contarDocumentos(parametros);
        
        //List<Declaracion> declaraciones = getRemote().getDeclaraciones(parametros);
        List<Documento> documentos = getRemote().getDocumentos(parametros);
        
        addRequestAttribute("controlResponse", controlResponse);
        addRequestAttribute("documentos", documentos);
        //addRequestAttribute("declaraciones", declaraciones);
        addRequestAttribute("importadores", importadores);
        addRequestAttribute("int.cantidadTotalRegistrosBusqueda", cantidadTotalRegistrosBusqueda);
        addRequestAttribute("int.pagina", pagina);
        addRequestAttribute("int.cantidadRegistrosPorPagina", cantidadRegistrosPorPagina);
        
    }
    
}
